Creative Image Editing এর ক্ষেত্রে Stable Diffusion এর প্রয়োগ

Latest Technologies - স্টেবল ডিফিউশন (Stable Diffusion) - Image Inpainting এবং Outpainting
167

Stable Diffusion-এর মাধ্যমে Creative Image Editing করা যায়, যেখানে মডেলটি প্রি-এক্সিস্টিং ইমেজকে পরিবর্তন, উন্নতি, বা সম্পূর্ণ নতুনভাবে পুনর্গঠন করতে ব্যবহার করা হয়। এটি মূলত Inpainting, Outpainting, এবং Image-to-Image Diffusion এর মাধ্যমে করা যায়। এই পদ্ধতিগুলো ব্যবহার করে ইমেজের নির্দিষ্ট অংশ পরিবর্তন বা ইমেজের প্রান্ত প্রসারণ করে ক্রিয়েটিভ এবং ইউনিক ইমেজ তৈরি করা যায়। নিচে এর প্রয়োগের কৌশল এবং উদাহরণ দেখানো হলো।

১. ইমেজ ইনপেইন্টিং (Inpainting)

ইমেজ ইনপেইন্টিং হল ইমেজের একটি নির্দিষ্ট অংশ মুছে সেই অংশে নতুন কিছু যোগ করা বা পরিবর্তন করা। এটি ক্রিয়েটিভ ইমেজ এডিটিংয়ের জন্য খুবই কার্যকরী। উদাহরণস্বরূপ, একটি প্রি-এক্সিস্টিং ইমেজে একটি নির্দিষ্ট অবজেক্ট পরিবর্তন করা বা নতুন কিছু যোগ করা।

উদাহরণ:

ধরা যাক আমাদের একটি ইমেজ আছে যেখানে একজন ব্যক্তি দাঁড়িয়ে আছে, এবং আমরা চাই তার পোশাক পরিবর্তন করতে।

from diffusers import StableDiffusionInpaintPipeline
from PIL import Image
import torch

# ইনপেইন্ট মডেল লোড করা
pipe = StableDiffusionInpaintPipeline.from_pretrained("runwayml/stable-diffusion-inpainting").to("cuda")

# ইমেজ এবং মাস্ক লোড করা
original_image = Image.open("person_image.png")
mask_image = Image.open("mask.png")  # যেখানে পরিবর্তন হবে সেই অংশের মাস্ক

# প্রম্পট সেট করা
prompt = "a person wearing a futuristic suit"

# ইনপেইন্ট করে ইমেজ তৈরি করা
edited_image = pipe(prompt=prompt, image=original_image, mask_image=mask_image).images[0]
edited_image.save("edited_person_image.png")

কোড ব্যাখ্যা:

  • Inpaint Pipeline: Inpaint করার জন্য একটি প্রি-ট্রেইনড মডেল ব্যবহার করা হয়েছে।
  • Original Image এবং Mask: মডেলটি নির্দিষ্ট অংশের পরিবর্তন করার জন্য একটি মাস্ক ব্যবহার করে। মাস্কের মাধ্যমে নির্ধারণ করা হয় কোন অংশে পরিবর্তন আনা হবে।
  • Prompt: প্রম্পটের মাধ্যমে নির্দেশ দেওয়া হয় যে আমরা সেই অংশে কি দেখতে চাই।

২. ইমেজ আউটপেইন্টিং (Outpainting)

Outpainting হলো একটি ইমেজের প্রান্তে নতুন কিছু যোগ করে ইমেজটি বড় করা। এটি বিশেষত ইমেজের কল্পনাপ্রবণ প্রসারণের জন্য ব্যবহৃত হয়, যেমন একটি পোর্ট্রেটের পটভূমি বৃদ্ধি করা বা একটি ল্যান্ডস্কেপ ইমেজে নতুন এলিমেন্ট যোগ করা।

উদাহরণ:

একটি পোর্ট্রেট ইমেজে পিছনের পটভূমি বাড়ানো এবং একটি প্রাকৃতিক দৃশ্য যোগ করা।

from diffusers import StableDiffusionInpaintPipeline
from PIL import Image

# আউটপেইন্ট মডেল লোড করা
pipe = StableDiffusionInpaintPipeline.from_pretrained("runwayml/stable-diffusion-inpainting").to("cuda")

# ইমেজ এবং মাস্ক লোড করা
portrait_image = Image.open("portrait.png")
mask_image = Image.open("outpaint_mask.png")  # আউটপেইন্ট করার জন্য নির্দিষ্ট মাস্ক

# প্রম্পট সেট করা
prompt = "a beautiful forest with mountains in the background"

# আউটপেইন্ট করে ইমেজ তৈরি করা
outpainted_image = pipe(prompt=prompt, image=portrait_image, mask_image=mask_image).images[0]
outpainted_image.save("outpainted_portrait.png")

কোড ব্যাখ্যা:

  • Mask: আউটপেইন্ট করার জন্য মাস্ক ব্যবহার করা হয়েছে যেখানে মডেলটি ইমেজের প্রসারণ করবে।
  • Prompt: প্রম্পটের মাধ্যমে নতুন যোগ করা অংশের বর্ণনা দেওয়া হয়েছে।

৩. ইমেজ-টু-ইমেজ ডিফিউশন (Image-to-Image Diffusion)

Image-to-Image Diffusion পদ্ধতিতে একটি প্রি-এক্সিস্টিং ইমেজের উপর ভিত্তি করে নতুন ইমেজ তৈরি করা যায়। এটি ইমেজের স্টাইল পরিবর্তন বা নতুন ডিজাইন অ্যাপ্লাই করতে ব্যবহার করা যায়।

উদাহরণ:

একটি সাধারণ ল্যান্ডস্কেপ ইমেজকে একটি ফ্যান্টাসি ল্যান্ডস্কেপে পরিবর্তন করা।

from diffusers import StableDiffusionImg2ImgPipeline

# ইমেজ-টু-ইমেজ ডিফিউশন মডেল লোড করা
pipe = StableDiffusionImg2ImgPipeline.from_pretrained("CompVis/stable-diffusion-v1-4").to("cuda")

# প্রাথমিক ইমেজ লোড করা
init_image = Image.open("landscape.png")

# প্রম্পট সেট করা
prompt = "a fantasy landscape with glowing trees, magical creatures, and a river flowing through"

# ইমেজ পরিবর্তন করা
edited_image = pipe(prompt=prompt, image=init_image, strength=0.75).images[0]
edited_image.save("fantasy_landscape.png")

কোড ব্যাখ্যা:

  • Image-to-Image Pipeline: এই পাইপলাইন ব্যবহার করে একটি প্রাথমিক ইমেজকে টেক্সট প্রম্পটের মাধ্যমে সম্পূর্ণ নতুন স্টাইল বা ফিচারে পরিবর্তন করা যায়।
  • Strength Parameter: ইমেজ পরিবর্তনের মাত্রা কন্ট্রোল করা যায়। strength বেশি হলে ইমেজের পরিবর্তন বেশি হবে, এবং কম হলে প্রাথমিক ইমেজের বৈশিষ্ট্যগুলো বজায় থাকবে।

৪. ইমেজের স্টাইল পরিবর্তন এবং এডিটিং

Stable Diffusion-এর মাধ্যমে ইমেজের স্টাইল সম্পূর্ণভাবে পরিবর্তন করা যায়, যেমন একটি সাধারণ পোর্ট্রেট ইমেজকে আঁকা (artistic style) বা অন্য কোনও নির্দিষ্ট স্টাইলে পরিবর্তন করা।

prompt = "a portrait of a woman, painted in watercolor with soft pastel colors"
edited_image = pipe(prompt=prompt, image=init_image, strength=0.8).images[0]
edited_image.save("watercolor_portrait.png")

উপসংহার

Stable Diffusion-এর মাধ্যমে Creative Image Editing করতে Inpainting, Outpainting, এবং Image-to-Image Diffusion-এর মতো পদ্ধতি ব্যবহার করা হয়। এই পদ্ধতিগুলো ব্যবহার করে ইমেজের নির্দিষ্ট অংশ পরিবর্তন, প্রসারণ, বা সম্পূর্ণ নতুন করে স্টাইলাইজেশন করা সম্ভব, যা ডিজাইনার, আর্টিস্ট এবং কনটেন্ট ক্রিয়েটরদের জন্য একটি শক্তিশালী টুল।

Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...